home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / Mesa-1.2.1 / include / GL / gl.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-05  |  30.7 KB  |  1,285 lines

  1. /* gl.h */
  2.  
  3. /*
  4.  * Mesa 3-D graphics library
  5.  * Version:  1.2
  6.  * Copyright (C) 1995  Brian Paul  (brianp@ssec.wisc.edu)
  7.  *
  8.  * This library is free software; you can redistribute it and/or
  9.  * modify it under the terms of the GNU Library General Public
  10.  * License as published by the Free Software Foundation; either
  11.  * version 2 of the License, or (at your option) any later version.
  12.  *
  13.  * This library is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * Library General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Library General Public
  19.  * License along with this library; if not, write to the Free
  20.  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22.  
  23.  
  24. /*
  25. $Id: gl.h,v 1.9 1995/05/30 13:17:38 brianp Exp $
  26.  
  27. $Log: gl.h,v $
  28.  * Revision 1.9  1995/05/30  13:17:38  brianp
  29.  * added glGetTexImage(), glGetMap[dfi]v() protos, GL_AUX[123], GL_COEF,
  30.  * GL_DOMAIN, GL_ORDER symbols
  31.  *
  32.  * Revision 1.8  1995/05/29  21:19:54  brianp
  33.  * added GL_TEXTURE_WIDTH, HEIGHT, BORDER, COMPONENTS symbols
  34.  * added glGetMaterial*, glGetPixelMap*, glGetTexGen*, glGetTexParameter* protos
  35.  *
  36.  * Revision 1.7  1995/05/22  17:03:21  brianp
  37.  * Release 1.2
  38.  *
  39.  * Revision 1.6  1995/04/28  20:04:03  brianp
  40.  * added GL_REPLACE_EXT texture symbol
  41.  * fixed glGetString and glGetLighiv prototypes
  42.  *
  43.  * Revision 1.5  1995/04/19  13:47:05  brianp
  44.  * renamed occurances of near and far for SCO x86 Unix
  45.  *
  46.  * Revision 1.4  1995/04/05  18:29:04  brianp
  47.  * added GL_EXT_blend_* compile-time symbols
  48.  *
  49.  * Revision 1.3  1995/03/10  16:28:41  brianp
  50.  * updated for blending extensions
  51.  *
  52.  * Revision 1.2  1995/03/04  19:45:47  brianp
  53.  * 1.1 beta revision
  54.  *
  55.  * Revision 1.1  1995/02/28  21:21:03  brianp
  56.  * Initial revision
  57.  *
  58.  */
  59.  
  60.  
  61. #ifndef GL_H
  62. #define GL_H
  63.  
  64.  
  65. #ifdef __cplusplus
  66. extern "C" {
  67. #endif
  68.  
  69.  
  70.  
  71.  
  72. /*
  73.  * Apps can test for this symbol to do conditional compilation if needed.
  74.  */
  75. #define MESA
  76.  
  77.  
  78.  
  79. /*
  80.  *
  81.  * Enumerations
  82.  *
  83.  */
  84.  
  85. typedef enum {
  86.     /* Boolean values */
  87.     GL_FALSE = 0,
  88.     GL_TRUE = 1,
  89.  
  90.     /* Data types */
  91.         GL_BYTE,
  92.         GL_UNSIGNED_BYTE,
  93.         GL_SHORT,
  94.         GL_UNSIGNED_SHORT,
  95.         GL_INT,
  96.         GL_UNSIGNED_INT,
  97.         GL_FLOAT,
  98.         GL_2_BYTES,
  99.         GL_3_BYTES,
  100.         GL_4_BYTES,
  101.  
  102.     /* Primitives */
  103.     GL_LINES,
  104.     GL_POINTS,
  105.     GL_LINE_STRIP,
  106.     GL_LINE_LOOP,
  107.     GL_TRIANGLES,
  108.     GL_TRIANGLE_STRIP,
  109.     GL_TRIANGLE_FAN,
  110.     GL_QUADS,
  111.     GL_QUAD_STRIP,
  112.     GL_POLYGON,
  113.     GL_EDGE_FLAG,
  114.  
  115.     /* Matrix Mode */
  116.     GL_MATRIX_MODE,
  117.     GL_MODELVIEW,
  118.     GL_PROJECTION,
  119.     GL_TEXTURE,
  120.  
  121.     /* Points */
  122.     GL_POINT_SMOOTH,
  123.     GL_POINT_SIZE,
  124.     GL_POINT_SIZE_GRANULARITY,
  125.     GL_POINT_SIZE_RANGE,
  126.  
  127.     /* Lines */
  128.     GL_LINE_SMOOTH,
  129.     GL_LINE_STIPPLE,
  130.     GL_LINE_STIPPLE_PATTERN,
  131.     GL_LINE_STIPPLE_REPEAT,
  132.     GL_LINE_WIDTH,
  133.     GL_LINE_WIDTH_GRANULARITY,
  134.     GL_LINE_WIDTH_RANGE,
  135.  
  136.     /* Polygons */
  137.     GL_POINT,
  138.     GL_LINE,
  139.     GL_FILL,
  140.     GL_CCW,
  141.     GL_CW,
  142.     GL_FRONT,
  143.     GL_BACK,
  144.     GL_CULL_FACE,
  145.     GL_CULL_FACE_MODE,
  146.     GL_POLYGON_SMOOTH,
  147.     GL_POLYGON_STIPPLE,
  148.     GL_FRONT_FACE,
  149.     GL_POLYGON_MODE,
  150.  
  151.     /* Display Lists */
  152.         GL_COMPILE,
  153.         GL_COMPILE_AND_EXECUTE,
  154.     GL_LIST_BASE,
  155.     GL_LIST_INDEX,
  156.     GL_LIST_MODE,
  157.  
  158.     /* Depth buffer */
  159.     GL_NEVER,
  160.     GL_LESS,
  161.     GL_GEQUAL,
  162.     GL_LEQUAL,
  163.     GL_GREATER,
  164.     GL_NOTEQUAL,
  165.     GL_EQUAL,
  166.     GL_ALWAYS,
  167.     GL_DEPTH_TEST,
  168.     GL_DEPTH_BITS,
  169.     GL_DEPTH_CLEAR_VALUE,
  170.     GL_DEPTH_FUNC,
  171.     GL_DEPTH_RANGE,
  172.     GL_DEPTH_WRITEMASK,
  173.     GL_DEPTH_COMPONENT,
  174.  
  175.     /* Lighting */
  176.     GL_LIGHTING,
  177.     GL_LIGHT0,
  178.     GL_LIGHT1,
  179.     GL_LIGHT2,
  180.     GL_LIGHT3,
  181.     GL_LIGHT4,
  182.     GL_LIGHT5,
  183.     GL_LIGHT6,
  184.     GL_LIGHT7,
  185.     GL_SPOT_EXPONENT,
  186.     GL_SPOT_CUTOFF,
  187.     GL_CONSTANT_ATTENUATION,
  188.     GL_LINEAR_ATTENUATION,
  189.     GL_QUADRATIC_ATTENUATION,
  190.     GL_AMBIENT,
  191.     GL_DIFFUSE,
  192.     GL_SPECULAR,
  193.     GL_SHININESS,
  194.     GL_EMISSION,
  195.     GL_POSITION,
  196.     GL_SPOT_DIRECTION,
  197.     GL_AMBIENT_AND_DIFFUSE,
  198.     GL_COLOR_INDEXES,
  199.     GL_LIGHT_MODEL_TWO_SIDE,
  200.     GL_LIGHT_MODEL_LOCAL_VIEWER,
  201.     GL_LIGHT_MODEL_AMBIENT,
  202.     GL_FRONT_AND_BACK,
  203.     GL_SHADE_MODEL,
  204.     GL_FLAT,
  205.     GL_SMOOTH,
  206.     GL_COLOR_MATERIAL,
  207.     GL_COLOR_MATERIAL_FACE,
  208.     GL_COLOR_MATERIAL_PARAMETER,
  209.     GL_NORMALIZE,
  210.  
  211.     /* User clipping planes */
  212.     GL_CLIP_PLANE0,
  213.     GL_CLIP_PLANE1,
  214.     GL_CLIP_PLANE2,
  215.     GL_CLIP_PLANE3,
  216.     GL_CLIP_PLANE4,
  217.     GL_CLIP_PLANE5,
  218.  
  219.     /* Accumulation buffer */
  220.     GL_ACCUM_RED_BITS,
  221.     GL_ACCUM_GREEN_BITS,
  222.     GL_ACCUM_BLUE_BITS,
  223.     GL_ACCUM_ALPHA_BITS,
  224.     GL_ACCUM_CLEAR_VALUE,
  225.     GL_ACCUM,
  226.     GL_ADD,
  227.     GL_LOAD,
  228.     GL_MULT,
  229.     GL_RETURN,
  230.  
  231.     /* Alpha testing */
  232.     GL_ALPHA_TEST,
  233.     GL_ALPHA_TEST_REF,
  234.     GL_ALPHA_TEST_FUNC,
  235.  
  236.     /* Blending */
  237.     GL_BLEND,
  238.     GL_BLEND_SRC,
  239.     GL_BLEND_DST,
  240.     GL_ZERO,
  241.     GL_ONE,
  242.     GL_SRC_COLOR,
  243.     GL_ONE_MINUS_SRC_COLOR,
  244.     GL_DST_COLOR,
  245.     GL_ONE_MINUS_DST_COLOR,
  246.     GL_SRC_ALPHA,
  247.     GL_ONE_MINUS_SRC_ALPHA,
  248.     GL_DST_ALPHA,
  249.     GL_ONE_MINUS_DST_ALPHA,
  250.     GL_SRC_ALPHA_SATURATE,
  251.  
  252.     /* Render Mode */
  253.     GL_FEEDBACK,
  254.     GL_RENDER,
  255.     GL_SELECT,
  256.  
  257.     /* Feedback */
  258.     GL_2D,
  259.     GL_3D,
  260.     GL_3D_COLOR,
  261.     GL_3D_COLOR_TEXTURE,
  262.     GL_4D_COLOR_TEXTURE,
  263.     GL_POINT_TOKEN,
  264.     GL_LINE_TOKEN,
  265.     GL_LINE_RESET_TOKEN,
  266.     GL_POLYGON_TOKEN,
  267.     GL_BITMAP_TOKEN,
  268.     GL_DRAW_PIXEL_TOKEN,
  269.     GL_COPY_PIXEL_TOKEN,
  270.     GL_PASS_THROUGH_TOKEN,
  271.  
  272.     /* Fog */
  273.     GL_FOG,
  274.     GL_FOG_MODE,
  275.     GL_FOG_DENSITY,
  276.     GL_FOG_COLOR,
  277.     GL_FOG_INDEX,
  278.     GL_FOG_START,
  279.     GL_FOG_END,
  280.     GL_LINEAR,
  281.     GL_EXP,
  282.     GL_EXP2,
  283.  
  284.     /* Logic Ops */
  285.     GL_LOGIC_OP,
  286.     GL_LOGIC_OP_MODE,
  287.     GL_CLEAR,
  288.     GL_SET,
  289.     GL_COPY,
  290.     GL_COPY_INVERTED,
  291.     GL_NOOP,
  292.     GL_INVERT,
  293.     GL_AND,
  294.     GL_NAND,
  295.     GL_OR,
  296.     GL_NOR,
  297.     GL_XOR,
  298.     GL_EQUIV,
  299.     GL_AND_REVERSE,
  300.     GL_AND_INVERTED,
  301.     GL_OR_REVERSE,
  302.     GL_OR_INVERTED,
  303.  
  304.     /* Stencil */
  305.     GL_STENCIL_TEST,
  306.     GL_STENCIL_WRITEMASK,
  307.     GL_STENCIL_BITS,
  308.     GL_STENCIL_FUNC,
  309.     GL_STENCIL_VALUE_MASK,
  310.     GL_STENCIL_REF,
  311.     GL_STENCIL_FAIL,
  312.     GL_STENCIL_PASS_DEPTH_PASS,
  313.     GL_STENCIL_PASS_DEPTH_FAIL,
  314.     GL_STENCIL_CLEAR_VALUE,
  315.     GL_STENCIL_INDEX,
  316.     GL_KEEP,
  317.     GL_REPLACE,
  318.     GL_INCR,
  319.     GL_DECR,
  320.  
  321.     /* Buffers, Pixel Drawing/Reading */
  322.     GL_NONE,
  323.     GL_LEFT,
  324.     GL_RIGHT,
  325.     /*GL_FRONT,*/
  326.     /*GL_BACK,*/
  327.     /*GL_FRONT_AND_BACK,*/
  328.     GL_FRONT_LEFT,
  329.     GL_FRONT_RIGHT,
  330.     GL_BACK_LEFT,
  331.     GL_BACK_RIGHT,
  332.     GL_AUX0,
  333.     GL_AUX1,
  334.     GL_AUX2,
  335.     GL_AUX3,
  336.     GL_COLOR_INDEX,
  337.     GL_STENCIL_BUFFER,
  338.     GL_DEPTH_BUFFER,
  339.     GL_RED,
  340.     GL_GREEN,
  341.     GL_BLUE,
  342.     GL_ALPHA,
  343.     GL_LUMINANCE,
  344.     GL_LUMINANCE_ALPHA,
  345.     GL_ALPHA_BITS,
  346.     GL_RED_BITS,
  347.     GL_GREEN_BITS,
  348.     GL_BLUE_BITS,
  349.     GL_INDEX_BITS,
  350.     GL_SUBPIXEL_BITS,
  351.     GL_AUX_BUFFERS,
  352.     GL_READ_BUFFER,
  353.     GL_DRAW_BUFFER,
  354.     GL_DOUBLEBUFFER,
  355.     GL_STEREO,
  356.     GL_BITMAP,
  357.     GL_COLOR,
  358.     GL_DEPTH,
  359.     GL_STENCIL,
  360.     GL_DITHER,
  361.     GL_RGB,
  362.     GL_RGBA,
  363.  
  364.     /* Implementation limits */
  365.     GL_MAX_MODELVIEW_STACK_DEPTH,
  366.     GL_MAX_PROJECTION_STACK_DEPTH,
  367.     GL_MAX_TEXTURE_STACK_DEPTH,
  368.     GL_MAX_ATTRIB_STACK_DEPTH,
  369.     GL_MAX_NAME_STACK_DEPTH,
  370.     GL_MAX_DISPLAYLISTS,
  371.     GL_MAX_LIST_NESTING,
  372.     GL_MAX_LIGHTS,
  373.     GL_MAX_CLIP_PLANES,
  374.     GL_MAX_VIEWPORT_DIMS,
  375.     GL_MAX_PIXEL_MAP_TABLE,
  376.     GL_MAX_EVAL_ORDER,
  377.     GL_MAX_TEXTURE_SIZE,
  378.  
  379.     /* Gets */
  380.     GL_ATTRIB_STACK_DEPTH,
  381.     GL_COLOR_CLEAR_VALUE,
  382.     GL_COLOR_WRITEMASK,
  383.     GL_CURRENT_INDEX,
  384.     GL_CURRENT_COLOR,
  385.     GL_CURRENT_NORMAL,
  386.     GL_CURRENT_RASTER_COLOR,
  387.     GL_CURRENT_RASTER_DISTANCE,
  388.     GL_CURRENT_RASTER_INDEX,
  389.     GL_CURRENT_RASTER_POSITION,
  390.     GL_CURRENT_RASTER_TEXTURE_COORDS,
  391.     GL_CURRENT_RASTER_POSITION_VALID,
  392.     GL_CURRENT_TEXTURE_COORDS,
  393.     GL_INDEX_CLEAR_VALUE,
  394.     GL_INDEX_MODE,
  395.     GL_INDEX_WRITEMASK,
  396.     GL_MODELVIEW_MATRIX,
  397.     GL_MODELVIEW_STACK_DEPTH,
  398.     GL_NAME_STACK_DEPTH,
  399.     GL_PROJECTION_MATRIX,
  400.     GL_PROJECTION_STACK_DEPTH,
  401.     GL_RENDER_MODE,
  402.     GL_RGBA_MODE,
  403.     GL_TEXTURE_MATRIX,
  404.     GL_TEXTURE_STACK_DEPTH,
  405.     GL_VIEWPORT,
  406.  
  407.  
  408.     /* Evaluators */
  409.     GL_AUTO_NORMAL,
  410.     GL_MAP1_COLOR_4,
  411.     GL_MAP1_GRID_DOMAIN,
  412.     GL_MAP1_GRID_SEGMENTS,
  413.     GL_MAP1_INDEX,
  414.     GL_MAP1_NORMAL,
  415.     GL_MAP1_TEXTURE_COORD_1,
  416.     GL_MAP1_TEXTURE_COORD_2,
  417.     GL_MAP1_TEXTURE_COORD_3,
  418.     GL_MAP1_TEXTURE_COORD_4,
  419.     GL_MAP1_VERTEX_3,
  420.     GL_MAP1_VERTEX_4,
  421.     GL_MAP2_COLOR_4,
  422.     GL_MAP2_GRID_DOMAIN,
  423.     GL_MAP2_GRID_SEGMENTS,
  424.     GL_MAP2_INDEX,
  425.     GL_MAP2_NORMAL,
  426.     GL_MAP2_TEXTURE_COORD_1,
  427.     GL_MAP2_TEXTURE_COORD_2,
  428.     GL_MAP2_TEXTURE_COORD_3,
  429.     GL_MAP2_TEXTURE_COORD_4,
  430.     GL_MAP2_VERTEX_3,
  431.     GL_MAP2_VERTEX_4,
  432.     GL_COEFF,
  433.     GL_DOMAIN,
  434.     GL_ORDER,
  435.  
  436.     /* Hints */
  437.     GL_FOG_HINT,
  438.     GL_LINE_SMOOTH_HINT,
  439.     GL_PERSPECTIVE_CORRECTION_HINT,
  440.     GL_POINT_SMOOTH_HINT,
  441.     GL_POLYGON_SMOOTH_HINT,
  442.     GL_DONT_CARE,
  443.     GL_FASTEST,
  444.     GL_NICEST,
  445.  
  446.     /* Scissor box */
  447.     GL_SCISSOR_TEST,
  448.     GL_SCISSOR_BOX,
  449.  
  450.     /* Pixel Mode / Transfer */
  451.     GL_MAP_COLOR,
  452.     GL_MAP_STENCIL,
  453.     GL_INDEX_SHIFT,
  454.     GL_INDEX_OFFSET,
  455.     GL_RED_SCALE,
  456.     GL_RED_BIAS,
  457.     GL_GREEN_SCALE,
  458.     GL_GREEN_BIAS,
  459.     GL_BLUE_SCALE,
  460.     GL_BLUE_BIAS,
  461.     GL_ALPHA_SCALE,
  462.     GL_ALPHA_BIAS,
  463.     GL_DEPTH_SCALE,
  464.     GL_DEPTH_BIAS,
  465.     GL_PIXEL_MAP_S_TO_S_SIZE,
  466.     GL_PIXEL_MAP_I_TO_I_SIZE,
  467.     GL_PIXEL_MAP_I_TO_R_SIZE,
  468.     GL_PIXEL_MAP_I_TO_G_SIZE,
  469.     GL_PIXEL_MAP_I_TO_B_SIZE,
  470.     GL_PIXEL_MAP_I_TO_A_SIZE,
  471.     GL_PIXEL_MAP_R_TO_R_SIZE,
  472.     GL_PIXEL_MAP_G_TO_G_SIZE,
  473.     GL_PIXEL_MAP_B_TO_B_SIZE,
  474.     GL_PIXEL_MAP_A_TO_A_SIZE,
  475.     GL_PIXEL_MAP_S_TO_S,
  476.     GL_PIXEL_MAP_I_TO_I,
  477.     GL_PIXEL_MAP_I_TO_R,
  478.     GL_PIXEL_MAP_I_TO_G,
  479.     GL_PIXEL_MAP_I_TO_B,
  480.     GL_PIXEL_MAP_I_TO_A,
  481.     GL_PIXEL_MAP_R_TO_R,
  482.     GL_PIXEL_MAP_G_TO_G,
  483.     GL_PIXEL_MAP_B_TO_B,
  484.     GL_PIXEL_MAP_A_TO_A,
  485.     GL_PACK_ALIGNMENT,
  486.     GL_PACK_LSB_FIRST,
  487.     GL_PACK_ROW_LENGTH,
  488.     GL_PACK_SKIP_PIXELS,
  489.     GL_PACK_SKIP_ROWS,
  490.     GL_PACK_SWAP_BYTES,
  491.     GL_UNPACK_ALIGNMENT,
  492.     GL_UNPACK_LSB_FIRST,
  493.     GL_UNPACK_ROW_LENGTH,
  494.     GL_UNPACK_SKIP_PIXELS,
  495.     GL_UNPACK_SKIP_ROWS,
  496.     GL_UNPACK_SWAP_BYTES,
  497.     GL_ZOOM_X,
  498.     GL_ZOOM_Y,
  499.  
  500.     /* Texture mapping */
  501.     GL_TEXTURE_ENV,
  502.     GL_TEXTURE_ENV_MODE,
  503.     GL_TEXTURE_1D,
  504.     GL_TEXTURE_2D,
  505.     GL_TEXTURE_WRAP_S,
  506.     GL_TEXTURE_WRAP_T,
  507.     GL_TEXTURE_MAG_FILTER,
  508.     GL_TEXTURE_MIN_FILTER,
  509.     GL_TEXTURE_ENV_COLOR,
  510.     GL_TEXTURE_GEN_S,
  511.     GL_TEXTURE_GEN_T,
  512.     GL_TEXTURE_GEN_MODE,
  513.     GL_TEXTURE_BORDER_COLOR,
  514.     GL_TEXTURE_WIDTH,
  515.     GL_TEXTURE_HEIGHT,
  516.     GL_TEXTURE_BORDER,
  517.     GL_TEXTURE_COMPONENTS,
  518.     GL_NEAREST_MIPMAP_NEAREST,
  519.     GL_NEAREST_MIPMAP_LINEAR,
  520.     GL_LINEAR_MIPMAP_NEAREST,
  521.     GL_LINEAR_MIPMAP_LINEAR,
  522.     GL_OBJECT_LINEAR,
  523.     GL_OBJECT_PLANE,
  524.     GL_EYE_LINEAR,
  525.     GL_EYE_PLANE,
  526.     GL_SPHERE_MAP,
  527.     GL_DECAL,
  528.     GL_MODULATE,
  529.     GL_NEAREST,
  530.     GL_REPEAT,
  531.     GL_CLAMP,
  532.     GL_S,
  533.     GL_T,
  534.     GL_R,
  535.     GL_Q,
  536.     GL_TEXTURE_GEN_R,
  537.     GL_TEXTURE_GEN_Q,
  538.  
  539.     /* Utility */
  540.     GL_VENDOR,
  541.     GL_RENDERER,
  542.     GL_VERSION,
  543.     GL_EXTENSIONS,
  544.  
  545.     /* Errors */
  546.     GL_INVALID_VALUE,
  547.         GL_INVALID_ENUM,
  548.         GL_INVALID_OPERATION,
  549.     GL_STACK_OVERFLOW,
  550.     GL_STACK_UNDERFLOW,
  551.     GL_OUT_OF_MEMORY,
  552.  
  553.     /* Extensions */
  554.     GL_CONSTANT_COLOR_EXT,
  555.     GL_ONE_MINUS_CONSTANT_COLOR_EXT,
  556.     GL_CONSTANT_ALPHA_EXT,
  557.     GL_ONE_MINUS_CONSTANT_ALPHA_EXT,
  558.     GL_BLEND_EQUATION_EXT,
  559.     GL_MIN_EXT,
  560.     GL_MAX_EXT,
  561.     GL_FUNC_ADD_EXT,
  562.     GL_FUNC_SUBTRACT_EXT,
  563.     GL_FUNC_REVERSE_SUBTRACT_EXT,
  564.     GL_BLEND_COLOR_EXT,
  565.     GL_REPLACE_EXT
  566. } GLenum;
  567.  
  568.  
  569. /* GL_NO_ERROR must be zero */
  570. #define GL_NO_ERROR GL_FALSE
  571.  
  572.  
  573.  
  574. /* Compile-time tests for extensions: */
  575. #define GL_EXT_blend_color    1
  576. #define GL_EXT_blend_logic_op    1
  577. #define GL_EXT_blend_minmax    1
  578. #define GL_EXT_blend_subtract    1
  579.  
  580.  
  581.  
  582. typedef enum {
  583.     GL_ACCUM_BUFFER_BIT    = 0x1,
  584.     GL_COLOR_BUFFER_BIT    = 0x2,
  585.     GL_CURRENT_BIT        = 0x4,
  586.     GL_DEPTH_BUFFER_BIT    = 0x8,
  587.     GL_ENABLE_BIT        = 0x10,
  588.     GL_EVAL_BIT        = 0x20,
  589.     GL_FOG_BIT        = 0x40,
  590.     GL_HINT_BIT        = 0x80,
  591.     GL_LIGHTING_BIT        = 0x100,
  592.     GL_LINE_BIT        = 0x200,
  593.     GL_LIST_BIT        = 0x400,
  594.     GL_PIXEL_MODE_BIT    = 0x800,
  595.     GL_POINT_BIT        = 0x1000,
  596.     GL_POLYGON_BIT        = 0x2000,
  597.     GL_POLYGON_STIPPLE_BIT    = 0x4000,
  598.     GL_SCISSOR_BIT        = 0x8000,
  599.     GL_STENCIL_BUFFER_BIT    = 0x10000,
  600.     GL_TEXTURE_BIT        = 0x20000,
  601.     GL_TRANSFORM_BIT    = 0x40000,
  602.     GL_VIEWPORT_BIT        = 0x80000,
  603.     GL_ALL_ATTRIB_BITS    = 0xfffff
  604. } GLbitfield;
  605.  
  606.  
  607.  
  608.  
  609. /*
  610.  *
  611.  * Data types (architecture dependent in some cases)
  612.  *
  613.  */
  614.  
  615. /*  C type        GL type        storage                            */
  616. /*-------------------------------------------------------------------------*/
  617. typedef void        GLvoid;
  618. typedef unsigned char    GLboolean;
  619. typedef signed char    GLbyte;        /* 1-byte signed */
  620. typedef short           GLshort;    /* 2-byte signed */
  621. typedef int             GLint;        /* 4-byte signed */
  622. typedef unsigned char    GLubyte;    /* 1-byte unsigned */
  623. typedef unsigned short    GLushort;    /* 2-byte unsigned */
  624. typedef unsigned int    GLuint;        /* 4-byte unsigned */
  625. typedef int             GLsizei;    /* 4-byte signed */
  626. typedef float           GLfloat;    /* single precision float */
  627. typedef float           GLclampf;    /* single precision float in [0,1] */
  628. typedef double          GLdouble;    /* double precision float */
  629. typedef double          GLclampd;    /* double precision float in [0,1] */
  630.  
  631.  
  632.  
  633.  
  634. /*
  635.  *
  636.  * Assorted functions
  637.  *
  638.  */
  639.  
  640.  
  641. extern void glClearIndex( GLfloat c );
  642.  
  643. extern void glClearColor( GLclampf red,
  644.               GLclampf green,
  645.               GLclampf blue,
  646.               GLclampf alpha );
  647.  
  648. extern void glClear( GLbitfield mask );
  649.  
  650. extern void glIndexMask( GLuint mask );
  651.  
  652. extern void glColorMask( GLboolean red, GLboolean green,
  653.              GLboolean blue, GLboolean alpha );
  654.  
  655. extern void glAlphaFunc( GLenum func, GLclampf ref );
  656.  
  657. extern void glBlendFunc( GLenum sfactor, GLenum dfactor );
  658.  
  659. extern void glLogicOp( GLenum opcode );
  660.  
  661. extern void glCullFace( GLenum mode );
  662.  
  663. extern void glFrontFace( GLenum mode );
  664.  
  665. extern void glPointSize( GLfloat size );
  666.  
  667. extern void glLineWidth( GLfloat width );
  668.  
  669. extern void glLineStipple( GLint factor, GLushort pattern );
  670.  
  671. extern void glPolygonMode( GLenum face, GLenum mode );
  672.  
  673. extern void glPolygonStipple( const GLubyte *mask );
  674.  
  675. extern void glGetPolygonStipple( GLubyte *mask );
  676.  
  677. extern void glEdgeFlag( GLboolean flag );
  678.  
  679. extern void glEdgeFlagv( const GLboolean *flag );
  680.  
  681. extern void glScissor( GLint x, GLint y, GLsizei width, GLsizei height);
  682.  
  683. extern void glClipPlane( GLenum plane, const GLdouble *equation );
  684.  
  685. extern void glGetClipPlane( GLenum plane, GLdouble *equation );
  686.  
  687. extern void glDrawBuffer( GLenum mode );
  688.  
  689. extern void glReadBuffer( GLenum mode );
  690.  
  691. extern void glEnable( GLenum cap );
  692.  
  693. extern void glDisable( GLenum cap );
  694.  
  695. extern GLboolean glIsEnabled( GLenum cap );
  696.  
  697.  
  698. extern void glGetBooleanv( GLenum pname, GLboolean *params );
  699.  
  700. extern void glGetDoublev( GLenum pname, GLdouble *params );
  701.  
  702. extern void glGetFloatv( GLenum pname, GLfloat *params );
  703.  
  704. extern void glGetIntegerv( GLenum pname, GLint *params );
  705.  
  706.  
  707. extern void glPushAttrib( GLbitfield mask );
  708.  
  709. extern void glPopAttrib( void );
  710.  
  711.  
  712.  
  713. /*
  714.  *
  715.  * Miscellaneous
  716.  *
  717.  */
  718.  
  719.  
  720. extern GLint glRenderMode( GLenum mode );
  721.  
  722. extern GLenum glGetError( void );
  723.  
  724. extern const GLubyte *glGetString( GLenum name );
  725.  
  726. extern void glFinish( void );
  727.  
  728. extern void glFlush( void );
  729.  
  730. extern void glHint( GLenum target, GLenum mode );
  731.  
  732.  
  733.  
  734. /*
  735.  *
  736.  * Depth Buffer
  737.  *
  738.  */
  739.  
  740.  
  741. extern void glClearDepth( GLclampd depth );
  742.  
  743. extern void glDepthFunc( GLenum func );
  744.  
  745. extern void glDepthMask( GLboolean flag );
  746.  
  747. extern void glDepthRange( GLclampd near_val, GLclampd far_val );
  748.  
  749.  
  750. extern void glClearAccum( GLfloat red, GLfloat green,
  751.               GLfloat blue, GLfloat alpha );
  752.  
  753. extern void glAccum( GLenum op, GLfloat value );
  754.  
  755.  
  756.  
  757. /*
  758.  *
  759.  * Transform
  760.  *
  761.  */
  762.  
  763.  
  764. extern void glMatrixMode( GLenum mode );
  765.  
  766. extern void glOrtho( GLdouble left, GLdouble right,
  767.              GLdouble bottom, GLdouble top,
  768.              GLdouble near_val, GLdouble far_val );
  769.  
  770. extern void glFrustum( GLdouble left, GLdouble right,
  771.                GLdouble bottom, GLdouble top,
  772.                GLdouble near_val, GLdouble far_val );
  773.  
  774. extern void glViewport( GLint x, GLint y, GLsizei width, GLsizei height );
  775.  
  776. extern void glPushMatrix( void );
  777.  
  778. extern void glPopMatrix( void );
  779.  
  780. extern void glLoadIdentity( void );
  781.  
  782. extern void glLoadMatrixd( const GLdouble *m );
  783. extern void glLoadMatrixf( const GLfloat *m );
  784.  
  785. extern void glMultMatrixd( const GLdouble *m );
  786. extern void glMultMatrixf( const GLfloat *m );
  787.  
  788. extern void glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z );
  789. extern void glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );
  790.  
  791. extern void glScaled( GLdouble x, GLdouble y, GLdouble z );
  792. extern void glScalef( GLfloat x, GLfloat y, GLfloat z );
  793.  
  794. extern void glTranslated( GLdouble x, GLdouble y, GLdouble z );
  795. extern void glTranslatef( GLfloat x, GLfloat y, GLfloat z );
  796.  
  797.  
  798.  
  799. /*
  800.  *
  801.  * Display Lists
  802.  *
  803.  */
  804.  
  805.  
  806. extern GLboolean glIsList( GLuint list );
  807.  
  808. extern void glDeleteLists( GLuint list, GLsizei range );
  809.  
  810. extern GLuint glGenLists( GLsizei range );
  811.  
  812. extern void glNewList( GLuint list, GLenum mode );
  813.  
  814. extern void glEndList( void );
  815.  
  816. extern void glCallList( GLuint list );
  817.  
  818. extern void glCallLists( GLsizei n, GLenum type, const GLvoid *lists );
  819.  
  820. extern void glListBase( GLuint base );
  821.  
  822.  
  823.  
  824. /*
  825.  *
  826.  * Drawing Functions
  827.  *
  828.  */
  829.  
  830. extern void glBegin( GLenum mode );
  831.  
  832. extern void glEnd( void );
  833.  
  834.  
  835. extern void glVertex2d( GLdouble x, GLdouble y );
  836. extern void glVertex2f( GLfloat x, GLfloat y );
  837. extern void glVertex2i( GLint x, GLint y );
  838. extern void glVertex2s( GLshort x, GLshort y );
  839.  
  840. extern void glVertex3d( GLdouble x, GLdouble y, GLdouble z );
  841. extern void glVertex3f( GLfloat x, GLfloat y, GLfloat z );
  842. extern void glVertex3i( GLint x, GLint y, GLint z );
  843. extern void glVertex3s( GLshort x, GLshort y, GLshort z );
  844.  
  845. extern void glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
  846. extern void glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
  847. extern void glVertex4i( GLint x, GLint y, GLint z, GLint w );
  848. extern void glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w );
  849.  
  850. extern void glVertex2dv( const GLdouble *v );
  851. extern void glVertex2fv( const GLfloat *v );
  852. extern void glVertex2iv( const GLint *v );
  853. extern void glVertex2sv( const GLshort *v );
  854.  
  855. extern void glVertex3dv( const GLdouble *v );
  856. extern void glVertex3fv( const GLfloat *v );
  857. extern void glVertex3iv( const GLint *v );
  858. extern void glVertex3sv( const GLshort *v );
  859.  
  860. extern void glVertex4dv( const GLdouble *v );
  861. extern void glVertex4fv( const GLfloat *v );
  862. extern void glVertex4iv( const GLint *v );
  863. extern void glVertex4sv( const GLshort *v );
  864.  
  865.  
  866. extern void glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz );
  867. extern void glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz );
  868. extern void glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz );
  869. extern void glNormal3i( GLint nx, GLint ny, GLint nz );
  870. extern void glNormal3s( GLshort nx, GLshort ny, GLshort nz );
  871.  
  872. extern void glNormal3bv( const GLbyte *v );
  873. extern void glNormal3dv( const GLdouble *v );
  874. extern void glNormal3fv( const GLfloat *v );
  875. extern void glNormal3iv( const GLint *v );
  876. extern void glNormal3sv( const GLshort *v );
  877.  
  878.  
  879. extern void glIndexd( GLdouble c );
  880. extern void glIndexf( GLfloat c );
  881. extern void glIndexi( GLint c );
  882. extern void glIndexs( GLshort c );
  883.  
  884. extern void glIndexdv( const GLdouble *c );
  885. extern void glIndexfv( const GLfloat *c );
  886. extern void glIndexiv( const GLint *c );
  887. extern void glIndexsv( const GLshort *c );
  888.  
  889.  
  890. extern void glColor3b( GLbyte red, GLbyte green, GLbyte blue );
  891. extern void glColor3d( GLdouble red, GLdouble green, GLdouble blue );
  892. extern void glColor3f( GLfloat red, GLfloat green, GLfloat blue );
  893. extern void glColor3i( GLint red, GLint green, GLint blue );
  894. extern void glColor3s( GLshort red, GLshort green, GLshort blue );
  895. extern void glColor3ub( GLubyte red, GLubyte green, GLubyte blue );
  896. extern void glColor3ui( GLuint red, GLuint green, GLuint blue );
  897. extern void glColor3us( GLushort red, GLushort green, GLushort blue );
  898.  
  899. extern void glColor4b( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha );
  900. extern void glColor4d( GLdouble red, GLdouble green,
  901.                GLdouble blue, GLdouble alpha );
  902. extern void glColor4b( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha );
  903. extern void glColor4f( GLfloat red, GLfloat green,
  904.                GLfloat blue, GLfloat alpha );
  905. extern void glColor4i( GLint red, GLint green, GLint blue, GLint alpha );
  906. extern void glColor4s( GLshort red, GLshort green,
  907.                GLshort blue, GLshort alpha );
  908. extern void glColor4ub( GLubyte red, GLubyte green,
  909.                 GLubyte blue, GLubyte alpha );
  910. extern void glColor4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha );
  911. extern void glColor4us( GLushort red, GLushort green,
  912.                 GLushort blue, GLushort alpha );
  913.  
  914.  
  915. extern void glColor3bv( const GLbyte *v );
  916. extern void glColor3dv( const GLdouble *v );
  917. extern void glColor3fv( const GLfloat *v );
  918. extern void glColor3iv( const GLint *v );
  919. extern void glColor3sv( const GLshort *v );
  920. extern void glColor3ubv( const GLubyte *v );
  921. extern void glColor3uiv( const GLuint *v );
  922. extern void glColor3usv( const GLushort *v );
  923.  
  924. extern void glColor4bv( const GLbyte *v );
  925. extern void glColor4dv( const GLdouble *v );
  926. extern void glColor4fv( const GLfloat *v );
  927. extern void glColor4iv( const GLint *v );
  928. extern void glColor4sv( const GLshort *v );
  929. extern void glColor4ubv( const GLubyte *v );
  930. extern void glColor4uiv( const GLuint *v );
  931. extern void glColor4usv( const GLushort *v );
  932.  
  933.  
  934. extern void glTexCoord1d( GLdouble s );
  935. extern void glTexCoord1f( GLfloat s );
  936. extern void glTexCoord1i( GLint s );
  937. extern void glTexCoord1s( GLshort s );
  938.  
  939. extern void glTexCoord2d( GLdouble s, GLdouble t );
  940. extern void glTexCoord2f( GLfloat s, GLfloat t );
  941. extern void glTexCoord2i( GLint s, GLint t );
  942. extern void glTexCoord2s( GLshort s, GLshort t );
  943.  
  944. extern void glTexCoord3d( GLdouble s, GLdouble t, GLdouble r );
  945. extern void glTexCoord3f( GLfloat s, GLfloat t, GLfloat r );
  946. extern void glTexCoord3i( GLint s, GLint t, GLint r );
  947. extern void glTexCoord3s( GLshort s, GLshort t, GLshort r );
  948.  
  949. extern void glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
  950. extern void glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q );
  951. extern void glTexCoord4i( GLint s, GLint t, GLint r, GLint q );
  952. extern void glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q );
  953.  
  954. extern void glTexCoord1dv( const GLdouble *v );
  955. extern void glTexCoord1fv( const GLfloat *v );
  956. extern void glTexCoord1iv( const GLint *v );
  957. extern void glTexCoord1sv( const GLshort *v );
  958.  
  959. extern void glTexCoord2dv( const GLdouble *v );
  960. extern void glTexCoord2fv( const GLfloat *v );
  961. extern void glTexCoord2iv( const GLint *v );
  962. extern void glTexCoord2sv( const GLshort *v );
  963.  
  964. extern void glTexCoord3dv( const GLdouble *v );
  965. extern void glTexCoord3fv( const GLfloat *v );
  966. extern void glTexCoord3iv( const GLint *v );
  967. extern void glTexCoord3sv( const GLshort *v );
  968.  
  969. extern void glTexCoord4dv( const GLdouble *v );
  970. extern void glTexCoord4fv( const GLfloat *v );
  971. extern void glTexCoord4iv( const GLint *v );
  972. extern void glTexCoord4sv( const GLshort *v );
  973.  
  974.  
  975. extern void glRasterPos2d( GLdouble x, GLdouble y );
  976. extern void glRasterPos2f( GLfloat x, GLfloat y );
  977. extern void glRasterPos2i( GLint x, GLint y );
  978. extern void glRasterPos2s( GLshort x, GLshort y );
  979.  
  980. extern void glRasterPos3d( GLdouble x, GLdouble y, GLdouble z );
  981. extern void glRasterPos3f( GLfloat x, GLfloat y, GLfloat z );
  982. extern void glRasterPos3i( GLint x, GLint y, GLint z );
  983. extern void glRasterPos3s( GLshort x, GLshort y, GLshort z );
  984.  
  985. extern void glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
  986. extern void glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
  987. extern void glRasterPos4i( GLint x, GLint y, GLint z, GLint w );
  988. extern void glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w );
  989.  
  990. extern void glRasterPos2dv( const GLdouble *v );
  991. extern void glRasterPos2fv( const GLfloat *v );
  992. extern void glRasterPos2iv( const GLint *v );
  993. extern void glRasterPos2sv( const GLshort *v );
  994.  
  995. extern void glRasterPos3dv( const GLdouble *v );
  996. extern void glRasterPos3fv( const GLfloat *v );
  997. extern void glRasterPos3iv( const GLint *v );
  998. extern void glRasterPos3sv( const GLshort *v );
  999.  
  1000. extern void glRasterPos4dv( const GLdouble *v );
  1001. extern void glRasterPos4fv( const GLfloat *v );
  1002. extern void glRasterPos4iv( const GLint *v );
  1003. extern void glRasterPos4sv( const GLshort *v );
  1004.  
  1005.  
  1006. extern void glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 );
  1007. extern void glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 );
  1008. extern void glRecti( GLint x1, GLint y1, GLint x2, GLint y2 );
  1009. extern void glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 );
  1010.  
  1011.  
  1012. extern void glRectdv( const GLdouble *v1, const GLdouble *v2 );
  1013. extern void glRectfv( const GLfloat *v1, const GLfloat *v2 );
  1014. extern void glRectiv( const GLint *v1, const GLint *v2 );
  1015. extern void glRectsv( const GLshort *v1, const GLshort *v2 );
  1016.  
  1017.  
  1018.  
  1019. /*
  1020.  *
  1021.  * Lighting Functions
  1022.  *
  1023.  */
  1024.  
  1025. extern void glShadeModel( GLenum mode );
  1026.  
  1027. extern void glLightf( GLenum light, GLenum pname, GLfloat param );
  1028. extern void glLighti( GLenum light, GLenum pname, GLint param );
  1029. extern void glLightfv( GLenum light, GLenum pname, const GLfloat *params );
  1030. extern void glLightiv( GLenum light, GLenum pname, const GLint *params );
  1031.  
  1032. extern void glGetLightfv( GLenum light, GLenum pname, GLfloat *params );
  1033. extern void glGetLightiv( GLenum light, GLenum pname, GLint *params );
  1034.  
  1035. extern void glLightModelf( GLenum pname, GLfloat param );
  1036. extern void glLightModeli( GLenum pname, GLint param );
  1037. extern void glLightModelfv( GLenum pname, const GLfloat *params );
  1038. extern void glLightModeliv( GLenum pname, const GLint *params );
  1039.  
  1040. extern void glMaterialf( GLenum face, GLenum pname, GLfloat param );
  1041. extern void glMateriali( GLenum face, GLenum pname, GLint param );
  1042. extern void glMaterialfv( GLenum face, GLenum pname, const GLfloat *params );
  1043. extern void glMaterialiv( GLenum face, GLenum pname, const GLint *params );
  1044.  
  1045. extern void glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params );
  1046. extern void glGetMaterialiv( GLenum face, GLenum pname, GLint *params );
  1047.  
  1048. extern void glColorMaterial( GLenum face, GLenum mode );
  1049.  
  1050.  
  1051.  
  1052.  
  1053. /*
  1054.  *
  1055.  * Raster functions
  1056.  *
  1057.  */
  1058.  
  1059. extern void glPixelZoom( GLfloat xfactor, GLfloat yfactor );
  1060.  
  1061. extern void glPixelStoref( GLenum pname, GLfloat param );
  1062. extern void glPixelStorei( GLenum pname, GLint param );
  1063.  
  1064. extern void glPixelTransferf( GLenum pname, GLfloat param );
  1065. extern void glPixelTransferi( GLenum pname, GLint param );
  1066.  
  1067. extern void glPixelMapfv( GLenum map, GLint mapsize, const GLfloat *values );
  1068. extern void glPixelMapuiv( GLenum map, GLint mapsize, const GLuint *values );
  1069. extern void glPixelMapusv( GLenum map, GLint mapsize, const GLushort *values );
  1070.  
  1071. extern void glGetPixelMapfv( GLenum map, GLfloat *values );
  1072. extern void glGetPixelMapuiv( GLenum map, GLuint *values );
  1073. extern void glGetPixelMapusv( GLenum map, GLushort *values );
  1074.  
  1075. extern void glBitmap( GLsizei width, GLsizei height,
  1076.               GLfloat xorig, GLfloat yorig,
  1077.               GLfloat xmove, GLfloat ymove,
  1078.               const GLubyte *bitmap );
  1079.  
  1080. extern void glReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
  1081.               GLenum format, GLenum type, GLvoid *pixels );
  1082.  
  1083. extern void glDrawPixels( GLsizei width, GLsizei height,
  1084.               GLenum format, GLenum type, const GLvoid *pixels );
  1085.  
  1086. extern void glCopyPixels( GLint x, GLint y, GLsizei width, GLsizei height,
  1087.               GLenum type );
  1088.  
  1089.  
  1090.  
  1091. /*
  1092.  *
  1093.  * Stencil functions
  1094.  *
  1095.  */
  1096.  
  1097. extern void glStencilFunc( GLenum func, GLint ref, GLuint mask );
  1098.  
  1099. extern void glStencilMask( GLuint mask );
  1100.  
  1101. extern void glStencilOp( GLenum fail, GLenum zfail, GLenum zpass );
  1102.  
  1103. extern void glClearStencil( GLint s );
  1104.  
  1105.  
  1106.  
  1107. /*
  1108.  *
  1109.  * Texture mapping
  1110.  *
  1111.  */
  1112.  
  1113. extern void glTexGend( GLenum coord, GLenum pname, GLdouble param );
  1114. extern void glTexGenf( GLenum coord, GLenum pname, GLfloat param );
  1115. extern void glTexGeni( GLenum coord, GLenum pname, GLint param );
  1116.  
  1117. extern void glTexGendv( GLenum coord, GLenum pname, const GLdouble *params );
  1118. extern void glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params );
  1119. extern void glTexGeniv( GLenum coord, GLenum pname, const GLint *params );
  1120.  
  1121. extern void glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params );
  1122. extern void glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params );
  1123. extern void glGetTexGeniv( GLenum coord, GLenum pname, GLint *params );
  1124.  
  1125.  
  1126. extern void glTexEnvf( GLenum target, GLenum pname, GLfloat param );
  1127. extern void glTexEnvi( GLenum target, GLenum pname, GLint param );
  1128.  
  1129. extern void glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params );
  1130. extern void glTexEnviv( GLenum target, GLenum pname, const GLint *params );
  1131.  
  1132. extern void glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params );
  1133. extern void glGetTexEnviv( GLenum target, GLenum pname, GLint *params );
  1134.  
  1135.  
  1136. extern void glTexParameterf( GLenum target, GLenum pname, GLfloat param );
  1137. extern void glTexParameteri( GLenum target, GLenum pname, GLint param );
  1138.  
  1139. extern void glTexParameterfv( GLenum target, GLenum pname,
  1140.                   const GLfloat *params );
  1141. extern void glTexParameteriv( GLenum target, GLenum pname,
  1142.                   const GLint *params );
  1143.  
  1144. extern void glGetTexParameterfv( GLenum target, GLenum pname, GLfloat *params);
  1145. extern void glGetTexParameteriv( GLenum target, GLenum pname, GLint *params );
  1146.  
  1147. extern void glGetTexLevelParameterfv( GLenum target, GLint level,
  1148.                       GLenum pname, GLfloat *params );
  1149. extern void glGetTexLevelParameteriv( GLenum target, GLint level,
  1150.                       GLenum pname, GLint *params );
  1151.  
  1152.  
  1153. extern void glTexImage1D( GLenum target, GLint level, GLint components,
  1154.               GLsizei width, GLint border,
  1155.               GLenum format, GLenum type, const GLvoid *pixels );
  1156.  
  1157. extern void glTexImage2D( GLenum target, GLint level, GLint components,
  1158.               GLsizei width, GLsizei height, GLint border,
  1159.               GLenum format, GLenum type, const GLvoid *pixels );
  1160.  
  1161. extern void glGetTexImage( GLenum target, GLint level, GLenum format,
  1162.                GLenum type, GLvoid *pixels );
  1163.  
  1164.  
  1165.  
  1166. /*
  1167.  *
  1168.  * Evaluators
  1169.  *
  1170.  */
  1171.  
  1172.  
  1173. extern void glMap1d( GLenum target, GLdouble u1, GLdouble u2, GLint stride,
  1174.              GLint order, const GLdouble *points );
  1175. extern void glMap1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride,
  1176.              GLint order, const GLfloat *points );
  1177.  
  1178. extern void glMap2d( GLenum target,
  1179.              GLdouble u1, GLdouble u2, GLint ustride, GLint uorder,
  1180.              GLdouble v1, GLdouble v2, GLint vstride, GLint vorder,
  1181.              const GLdouble *points );
  1182. extern void glMap2f( GLenum target,
  1183.              GLfloat u1, GLfloat u2, GLint ustride, GLint uorder,
  1184.              GLfloat v1, GLfloat v2, GLint vstride, GLint vorder,
  1185.              const GLfloat *points );
  1186.  
  1187. extern void glGetMapdv( GLenum target, GLenum query, GLdouble *v );
  1188. extern void glGetMapfv( GLenum target, GLenum query, GLfloat *v );
  1189. extern void glGetMapiv( GLenum target, GLenum query, GLint *v );
  1190.  
  1191. extern void glEvalCoord1d( GLdouble u );
  1192. extern void glEvalCoord1f( GLfloat u );
  1193.  
  1194. extern void glEvalCoord1dv( const GLdouble *u );
  1195. extern void glEvalCoord1fv( const GLfloat *u );
  1196.  
  1197. extern void glEvalCoord2d( GLdouble u, GLdouble v );
  1198. extern void glEvalCoord2f( GLfloat u, GLfloat v );
  1199.  
  1200. extern void glEvalCoord2dv( const GLdouble *u );
  1201. extern void glEvalCoord2fv( const GLfloat *u );
  1202.  
  1203. extern void glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 );
  1204. extern void glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 );
  1205.  
  1206. extern void glMapGrid2d( GLint un, GLdouble u1, GLdouble u2,
  1207.              GLint vn, GLdouble v1, GLdouble v2 );
  1208. extern void glMapGrid2f( GLint un, GLfloat u1, GLfloat u2,
  1209.              GLint vn, GLfloat v1, GLfloat v2 );
  1210.  
  1211. extern void glEvalPoint1( GLint i );
  1212.  
  1213. extern void glEvalPoint2( GLint i, GLint j );
  1214.  
  1215. extern void glEvalMesh1( GLenum mode, GLint i1, GLint i2 );
  1216.  
  1217. extern void glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
  1218.  
  1219.  
  1220.  
  1221. /*
  1222.  *
  1223.  * Fog
  1224.  *
  1225.  */
  1226.  
  1227. extern void glFogf( GLenum pname, GLfloat param );
  1228.  
  1229. extern void glFogi( GLenum pname, GLint param );
  1230.  
  1231. extern void glFogfv( GLenum pname, const GLfloat *params );
  1232.  
  1233. extern void glFogiv( GLenum pname, const GLint *params );
  1234.  
  1235.  
  1236.  
  1237. /*
  1238.  *
  1239.  * Selection and Feedback
  1240.  *
  1241.  */
  1242.  
  1243. extern void glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer );
  1244.  
  1245. extern void glPassThrough( GLfloat token );
  1246.  
  1247. extern void glSelectBuffer( GLsizei size, GLuint *buffer );
  1248.  
  1249. extern void glInitNames( void );
  1250.  
  1251. extern void glLoadName( GLuint name );
  1252.  
  1253. extern void glPushName( GLuint name );
  1254.  
  1255. extern void glPopName( void );
  1256.  
  1257.  
  1258.  
  1259. /*
  1260.  *
  1261.  * Unimplemented functions
  1262.  *
  1263.  */
  1264.  
  1265.  
  1266.  
  1267. /*
  1268.  *
  1269.  * Extensions
  1270.  *
  1271.  */
  1272.  
  1273. extern void glBlendEquationEXT( GLenum mode );
  1274.  
  1275. extern void glBlendColorEXT( GLclampf red, GLclampf green,
  1276.                  GLclampf blue, GLclampf alpha );
  1277.  
  1278.  
  1279.  
  1280. #ifdef __cplusplus
  1281. }
  1282. #endif
  1283.  
  1284. #endif
  1285.